// 粒子效果类
import { TimeManager } from './TimeManager.js';

export class Particle {
    constructor(x, y) {
        this.x = x;
        this.y = y;
        this.vx = (Math.random() - 0.5) * 480; // 8 * 60 = 480像素/秒
        this.vy = (Math.random() - 0.5) * 480; // 8 * 60 = 480像素/秒
        this.life = TimeManager.CONSTANTS.PARTICLE_LIFE; // 使用毫秒
        this.maxLife = TimeManager.CONSTANTS.PARTICLE_LIFE;
        this.size = Math.random() * 4 + 2;
    }
    
    update(deltaTime) {
        // 基于时间的位置更新
        this.x += this.vx * (deltaTime / 1000);
        this.y += this.vy * (deltaTime / 1000);
        
        // 基于时间的生命值更新
        this.life = TimeManager.updateTimer(this.life, deltaTime);
        
        // 基于时间的尺寸变化
        this.size *= Math.pow(0.95, deltaTime / 16.67);
    }
    
    render(ctx) {
        const alpha = this.life / this.maxLife;
        ctx.fillStyle = `rgba(255, ${100 + Math.random() * 100}, 0, ${alpha})`;
        ctx.fillRect(this.x, this.y, this.size, this.size);
    }
}